@烟雨
1年前 提问
2个回答

XSS 与 CSRF 有什么区别

GQQQy
1年前

XSS与CSRF主要有以下区别:

  • CSRF需要用户先登录网站,获取cookie,XSS不需要登录则直接可以攻击。

  • XSS更像漏洞,CSRF更像攻击,xss是一种存在在网站的中的漏洞,攻击者可以利用这些漏洞进行攻击,而CSRF则是一种黑客的攻击手段。

  • 只要有XSS,就可以发起CSRF类似攻击。

  • CSRF是利用网站本身的漏洞,去请求网站的api,XSS是向网站注入js代码,然后执行js里的代码,篡改网站的内容。

X0_0X
1年前
官方采纳

xss:跨站脚本攻击、诱骗用户点击恶意链接盗取用户cookie进行攻击、不需要用户进行登录、xss除了利用cookie还可以篡改网页等

csrf:跨站请求伪造、无法获取用户的cookie而是直接冒充用户、需要用户登录后进行操作

首先我们要对xss和csrf进行足够的了解才能分清楚两者的区别。

xss:中文名称跨站脚本攻击,通常出现在搜索框、留言板、评论区等地方

分类:反射性、存储型、DOM型

攻击方式:构造恶意链接,诱骗用户点击盗取用户的cookie信息

漏洞危害:xss蠕虫、会话、流量劫持、网站挂马、盗取cookie

防护方法:设置黑名单和白名单、对用户输入进行过滤、入参字符过滤、出参字符转义、设置httponly

csrf漏洞:中文名称跨站请求伪造,攻击者冒充用户身份执行用户操作

检测漏洞:抓取一个请求包,去掉referer字段进行访问,如果访问有效则存在漏洞

危害:盗用用户身份、执行用户操作,修改信息

防护方法:

1、设置referer字段;但是并不是所有服务器在任何时候都可以接受referer字段,所以这个方法存在一定的局限性

2、设置验证码;在用户操作的过程中设置身份确认的验证码,该方法会很有用,不过验证码频繁的话会影响用户体验

3、设置token值,在用户请求中设置一个随机没有规律的token值可以有效的防止攻击者利用漏洞攻击

从上我们可以总结出:

xss:跨站脚本攻击、诱骗用户点击恶意链接盗取用户cookie进行攻击、不需要用户进行登录、xss除了利用cookie还可以篡改网页等

csrf:跨站请求伪造、无法获取用户的cookie而是直接冒充用户、需要用户登录后进行操作